package basic.com.liz.common.log.parser;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

import basic.com.liz.common.log.parser.HqlParser.DeleteSqlParser;
import basic.com.liz.common.log.parser.HqlParser.InsertSqlParser;
import basic.com.liz.common.log.parser.HqlParser.UpdateSqlParser;

public class HqlParserFactory
{
    public static HqlParser generateParser(String preparedSql)
    {
        if (contains(preparedSql, "(delete)(.+)"))
        {
            return new DeleteSqlParser(preparedSql);
        }
        else if (contains(preparedSql, "(update)(.+)(set)(.+)"))
        {
            System.out.println(preparedSql);
            return new UpdateSqlParser(preparedSql);
        }
        
        // 暂未实现
        return new InsertSqlParser(preparedSql);
    }
    
    private static boolean contains(String sql, String regExp)
    {
        Pattern pattern = Pattern.compile(regExp);
        Matcher matcher = pattern.matcher(sql);
        return matcher.find();
    }
}
